const http = require('http');
const querystring = require('querystring');
const url = require('url');
http.createServer((req, res) => {
  console.log('req.method:', req.method);
  let arr = [];
  req.on('data', (chunk) => {
    arr.push(chunk);
  });
  req.on('end', (chunk) => {
    let initTime = Date.now();
    if(req.url === '/long-task'){
      while (Date.now() - initTime < 1000 * 10){}
    }else {
      while (Date.now() - initTime < 1000 * 2){}
    }

    res.statusCode = 200;

    res.end(`${new Date().toLocaleString()}`);
  });

}).listen(3000,()=>{
  console.log('server is running at 3000')
});

// 先在浏览器访问:  http://localhost:3000/long-task
// 返回时间为 3:29:18

// 然后紧接着快速访问:  http://localhost:3000/
// 返回时间为 3:29:20

// 会发现第二个访问 虽然访问的不是 long-task接口 但一样被阻塞了,
// 直到第一个访问long-task接口的返回回来了
// 第二个访问才被接待

// 说明nodeJS 单进程单线程模型  如果有个longTask 任务为同步代码
// 那么直到这个接口的访问返回之前, 是不能够接待第二个
